<?php

class ModeloBase {

    private $conexion;
    private $consulta;

    /*
     * Conectar a la BD por medio del ODBC
     */    
    
    function actualizar($sql = "") {

        $this->consulta = $this->conexion->prepare($sql);
        $this->consulta->execute();
    }

    function conectar($dsn = "ifxcontab", $user = "informix", $pass = "viena") {
        $conexion = 'odbc:' . $dsn;
        $this->conexion = new PDO($conexion, $user, $pass);
        $this->conexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    }

    /*
     * Consultar datos de la BD
     */

    function consultar($sql = "") {
        $this->consulta = $this->conexion->prepare($sql);
        $this->consulta->execute();
        $this->consulta->setFetchMode(PDO::FETCH_ASSOC);
    }

    /*
     * Ejecutar acci�n en la BD
     */

    function ejecutar($sql = "") {
        $this->consulta = $this->conexion->prepare($sql);
        $this->consulta->execute();
        $this->lastId = $this->consulta->lastInsertId();
    }

    /*
     * Insertar registro en la BD
     */

    function insertar() {
       
        foreach ($this->datos as $campo => $valor):
            $campos .= "" . $campo . ", ";
            $valores .= "'" . $valor . "', ";
        endforeach;
        $campos = substr($campos, 0, -2);
        $valores = substr($valores, 0, -2);

        $insert = " INSERT INTO " . $this->tabla;
        $insert .= " ( " . $campos . " )";
        $insert .= " VALUES ( " . $valores . " )";
        $this->consulta = $this->conexion->prepare($insert);
        $this->consulta->execute();
        return 0;
        //return 0;
    }

    function insertarConsulta($sql){        
        
        $this->consulta = $this->conexion->prepare($sql);
        $this->consulta->execute();
        
    }
      


    function insertarMensaje() {

        foreach ($this->datos as $campo => $valor):
            $campos .= "" . $campo . ", ";
            $valores .= "'" . $valor . "', ";
        endforeach;
        $campos = substr($campos, 0, -2);
        $valores = substr($valores, 0, -2);

        $insert = " INSERT INTO " . $this->tabla;
        $insert .= " ( " . $campos . " )";
        $insert .= " VALUES ( " . $valores . " )";
        $this->consulta = $this->conexion->prepare($insert);
        $this->consulta->execute();

        $m = $this->datos['mensaje'];
        $cr = $this->datos['crea'];
        $ce = $this->datos['cedula'];
        $busqueda = "SELECT id FROM buzon WHERE cedula='" . $ce . "' AND mensaje='" . $m . "' AND crea='" . $cr . "';";
       // print_r($busqueda);
        $this->consultar($busqueda);
        return 0;
        
    }

    /*
     * Obtener Registro de la BD
     */

    function getRegistro() {
        if ($registro = $this->consulta->fetch()) {
            return $registro;
        } else {
            return false;
        }
    }

    function crearEsqueletoSuc($tipo, $suc, $no_reg) {
        $tituloT->codigo->valor = "C&oacute;digo";
        $tituloT->nombre->valor = "Descripci&oacute;n";

        if (trim($no_reg) != "") {
            $cond_no_reg = "and codigo not in ($no_reg)";
            $cond_no_suc = "and codregion not in ($no_reg)";
        }

        if ($tipo == 'C') {
            $consulta =
                    "
          select trunc(codigo) as codsuc, nombre as nomsuc, codregion
          from sucursales
          where estado = 'A'
            and codregion > 0
            $cond_no_suc
          order by 1
          ";
            $this->consultar($consulta);
            //$this->verDatos ();
            while ($registro = $this->getRegistro()) {
                $codSuc = trim($registro[codsuc]);
                $nomSuc = minusculas($registro[nomsuc]);
                $codRegion = trim($registro[codregion]);

                $arreglo->$codRegion->titulo = $tituloT;

                $arreglo->$codRegion->$codSuc->codigo->valor = $codSuc;
                $idFila = "idFila" . $codRegion;
                $arreglo->$codRegion->$codSuc->codigo->idfila = $idFila;
                $arreglo->$codRegion->$codSuc->nombre->valor = $nomSuc;

                $sucursal->$codSuc->codSuc = $codSuc;
                $sucursal->$codSuc->nomSuc = $nomSuc;
                $sucursal->$codSuc->codRegion = $codRegion;
                $sucursal->$codSuc->nomRegion = $nomRegion;
            }
            $arreglo->total->titulo = $tituloT;
            $arreglo->total->total->codigo->valor = "-";
            $arreglo->total->total->nombre->valor = "Compa&ntilde;ia";
            //echo "Compa&ntilde;ia";
            $consulta =
                    "
          select nombre, codigo
          from regionales
          where codigo > 0
          $cond_no_reg
          order by 2
          ";
            $this->consultar($consulta);
            //$this->verDatos ();
            while ($registro = $this->getRegistro()) {
                $codRegion = trim($registro[codigo]);
                $nomRegion = minusculas($registro[nombre]);

                $arreglo->$codRegion->titulo = $tituloT;
                $arreglo->$codRegion->total->codigo->valor = $codRegion;
                $idFila = "idFila" . $codRegion;
                $classImgFila = "classImgFila" . $codRegion;
                $arreglo->$codRegion->total->codigo->enlace = "javascript:guiaClase('$idFila','$classImgFila');";
                $arreglo->$codRegion->total->codigo->prefijo = "<img class=\"$classImgFila\" src=\"img/contraer.gif\" width=\"10\" height=\"10\" border=\"0\" />&nbsp;";
                $arreglo->$codRegion->total->nombre->valor = $nomRegion;
            }
        } else if ($tipo == 'R') {
            //echo "Regional";
            if ($suc > 90) {
                $consulta =
                        "
            select nombre, codigo
            from regionales
            where cod_intranet = $suc
            $cond_no_reg
            order by 1
            ";
            } else {
                $consulta =
                        "
            select nombre, codigo
            from regionales
            where codigo = $suc
            $cond_no_reg
            order by 1
            ";
            }
            $this->consultar($consulta);
            //$this->verDatos ();
            while ($registro = $this->getRegistro()) {
                $codRegion = trim($registro[codigo]);
                $nomRegion = minusculas($registro[nombre]);

                $arreglo->$codRegion->titulo = $tituloT;
                $arreglo->$codRegion->total->codigo->valor = $codRegion;
                $idFila = "idFila" . $codRegion;
                $classImgFila = "classImgFila" . $codRegion;
                $arreglo->$codRegion->total->codigo->enlace = "javascript:guiaClase('$idFila','$classImgFila');";
                $arreglo->$codRegion->total->codigo->prefijo = "<img class=\"$classImgFila\" src=\"img/contraer.gif\" width=\"10\" height=\"10\" border=\"0\" />&nbsp;";
                $arreglo->$codRegion->total->nombre->valor = $nomRegion;
            }
            $consulta =
                    "
          select trunc(codigo) as codsuc, nombre as nomsuc
          from sucursales
          where estado = 'A'
            and codregion = $codRegion
            $cond_no_suc
          order by 1
          ";
            $this->consultar($consulta);
            //$this->verDatos ();
            while ($registro = $this->getRegistro()) {
                $codSuc = trim($registro[codsuc]);
                $nomSuc = minusculas($registro[nomsuc]);

                $arreglo->$codRegion->$codSuc->codigo->valor = $codSuc;
                $idFila = "idFila" . $codRegion;
                $arreglo->$codRegion->$codSuc->codigo->idfila = $idFila;
                $arreglo->$codRegion->$codSuc->nombre->valor = $nomSuc;

                $sucursal->$codSuc->codSuc = $codSuc;
                $sucursal->$codSuc->nomSuc = $nomSuc;
                $sucursal->$codSuc->codRegion = $codRegion;
                $sucursal->$codSuc->nomRegion = $nomRegion;
            }
        } else if ($tipo == 'S') {
            $consulta =
                    "
          select trunc(codigo) as codsuc, nombre as nomsuc, codregion
          from sucursales
          where codigo = $suc
          $cond_no_suc
          order by 1
          ";
            $this->consultar($consulta);
            //$this->verDatos ();
            while ($registro = $this->getRegistro()) {
                $codSuc = trim($registro[codsuc]);
                $nomSuc = minusculas($registro[nomsuc]);
                $codRegion = trim($registro[codregion]);

                $arreglo->$codRegion->titulo = $tituloT;
                $arreglo->$codRegion->$codSuc->codigo->valor = $codSuc;
                $arreglo->$codRegion->$codSuc->nombre->valor = $nomSuc;

                $sucursal->$codSuc->codSuc = $codSuc;
                $sucursal->$codSuc->nomSuc = $nomSuc;
                $sucursal->$codSuc->codRegion = $codRegion;
                $sucursal->$codSuc->nomRegion = $nomRegion;
            }
        } else {
            exit("Incorrecto!!!");
        }
        //echo "$suc";
        $retorno->arreglo = $arreglo;
        $retorno->sucursal = $sucursal;
        return $retorno;
    }

}

?>
